import {
  firstLetterToUpperCase,
  firstLetterToLowerCase,
  allLetterToUpperCase,
  allLetterToLowerCase,
  firstWordLetterToUpperCase
} from '@renderer/utils/UpperLowerUtils'
import { zhongWenToPinYin } from '@renderer/utils/TogglePinyinUtils'
import {
  toTraditionalChinese,
  toSimplifiedChinese
} from '@renderer/utils/ToggleChineseVariantUtils'
import useTransformNameFormStore from '@renderer/store/Form/TransformNameForm'

// 大小写转换、简繁体转换、中文转拼音
export default function useRuleTransfer(callback: () => ITableDataItem[]) {
  const ruleTransfer = () => {
    const tableData = callback()

    const {
      transformNameToggleCase,
      transformNameToggleComplex,
      transformNameToggleSpell
    } = useTransformNameFormStore()

    // 中文转拼音
    switch (transformNameToggleSpell) {
      case '1':
        zhongWenToPinYin(tableData)
        break
    }

    // 大小写转换
    switch (transformNameToggleCase) {
      case '1':
        // 首字母大写
        firstLetterToUpperCase(tableData)
        break
      case '2':
        // 首字母小写
        firstLetterToLowerCase(tableData)
        break
      case '3':
        // 全部大写
        allLetterToUpperCase(tableData)
        break
      case '4':
        // 全部小写
        allLetterToLowerCase(tableData)
        break
      case '5':
        firstWordLetterToUpperCase(tableData)
        break
    }

    // 简繁体转换
    switch (transformNameToggleComplex) {
      case '1':
        // 简体转繁体
        toTraditionalChinese(tableData)
        break
      case '2':
        // 繁体转简体
        toSimplifiedChinese(tableData)
        break
    }
  }

  return {
    ruleTransfer
  }
}
